RTXC Application Notes on the Cogent Csb337 Board
There are 2 projects for building the Example Applications for the Csb337: Quadros_Dm and Quadros_Ss. These will build a dual-mode and single-stack example, respectively. The dual-mode example exercises the multi-stack features. There are program subprojects for both ARM and Thumb modes. The IAR J-Link USB and Macraigor Raven were both used for debug connection.

NOTE 1: It was observed during qualification that Thumb code could not be debugged properly on the Csb337. The Thumb code runs from cstartup OK, but it cannot be stopped and restarted (ie. it cannot step nor run to a breakpoint). This behavior was observed on both the J-Link USB and Raven interfaces. 

NOTE 2: A cstartup symbol was added to the example programs for the Csb337. This symbol is equivalent to the ?cstartup symbol used in the IAR tools. It was added because the macro command parser of version 4.x of the IAR tools does not parse the '?'. The PC is initialized to cstartup in the macro file csb337_startup.mac.

Single-Stack Example

The single-stack example has 4 threads. One is a master thread. The other thread numbers 2 through 4 each cause an LED to be lit on the banks LED1 and LED2 of the CSB337 board. 

Dual-Mode Example

Serial output is on SERIAL 1 of the Csb337. Settings are 38400-N-8-1.

 

Supplementary RTXCgen Options

 

1.1 INTERPRET EXCEPTIONS AS AIC

RTXCgen normally interprets ARM exception vectors as "core" vectors (eg. SWI, IRQ, FIQ, etc) based at address 0. However, for many ARM processors, it would be more convenient to make the exceptions correspond to the particular interrupt controller of the processor. For the At91rm9200, we have provided the option to bind the exception objects to the set of 32 interrupt sources for the AIC controller. To illustrate, without this option we can have only one exception object:

Name           Interrupt Level     Vector Number      Entry Point            Description

IRQISR                  N/A                      24                   IrqHandler            The one and only IRQ Handler

 

However, using  this option we can have an exception object for each AIC interrupt source:

Name           Interrupt Level     Vector Number      Entry Point            Description

CLKISR                  6                           1                   ClkIsr                     Kernel clock

COMISR                 3                           7                   ComIsr                  Serial Driver for UART1

UDPISR                  4                         11                  UdpIsr                    USB Device Port

.....etc....etc

 

1.2 DEBUG PROTECTION FOR AIC

Supports the "Protect Mode" for the AIC. Details of this can be found in the AT92rm9200 datasheet. Turn this option off for final release of code.